package com.zw.a.basic.a11.demo03_map;

import java.util.Collection;
import java.util.HashMap;
import java.util.Set;

//案例: 演示Map集合的获取功能
/*
    涉及到的Map集合中的方法:
        public V get(K key)             根据键获取其对应的值.
        public Set<K>  keySet();        获取所有的键, 因为Map的键具有唯一性, 所以返回值Set集合.
        public Collection<V> values();  获取所有的值, 因为Map的值可以重复, 所以返回值是Collection
 */
public class Demo03 {
    public static void main(String[] args) {
        //1.定义Map集合, 键是丈夫, 值是妻子. (键值都是字符串类型).
        HashMap<String, String> hm = new HashMap<>();
        hm.put("乔峰", "阿朱");
        hm.put("虚竹", "梦姑");
        hm.put("段誉", "王语嫣");

        //2.先通过代码测试上述的3个方法. 即: get(), keySet(), values()

        //2.1 测试  public V get(K key)             根据键获取其对应的值.
        //分解版
        /*String value1 = hm.get("乔峰");
        System.out.println(value1);*/

        //合并版
        /*System.out.println(hm.get("乔峰"));
        System.out.println(hm.get("慕容复"));*/

        //2.2 测试  public Set<K>  keySet();        获取所有的键, 因为Map的键具有唯一性, 所以返回值Set集合.
        Set<String> keys = hm.keySet();
        for (String key : keys) {
            System.out.println(key);
        }
        System.out.println("-------------------");

        //2.3 测试 public Collection<V> values();  获取所有的值, 因为Map的值可以重复, 所以返回值是Collection
        Collection<String> values = hm.values();
        for (String value : values) {
            System.out.println(value);
        }
    }
}
